package com.turbo.cloud.ums.utils;

import cn.hutool.core.util.StrUtil;
import com.turbo.cloud.ums.web.model.component.UmsMenuComponentVO;
import com.turbo.cloud.ums.web.model.component.UmsComponentVO;
import org.springframework.util.CollectionUtils;

import java.util.ArrayList;
import java.util.List;

/**
 * 权限工具类
 *
 * @author zhangluning
 */
public class ComponentUtil {
    /**
     * 组装权限列表
     *
     * @param permissionList 权限列表
     * @param menuId         菜单ID
     * @param controlVO      菜单实体
     */
    public static void assemblePermissionList(List<UmsMenuComponentVO> permissionList, String menuId, UmsComponentVO controlVO) {
        if (!CollectionUtils.isEmpty(permissionList)) {
            for (UmsMenuComponentVO controlPermissionVO : permissionList) {
                if (StrUtil.isNotBlank(menuId) && menuId.equals(controlPermissionVO.getMenuId())) {
                    if (CollectionUtils.isEmpty(controlPermissionVO.getComponents())) {
                        List<UmsComponentVO> controls = new ArrayList<>();
                        controls.add(controlVO);
                        controlPermissionVO.setComponents(controls);
                    } else {
                        controlPermissionVO.getComponents().add(controlVO);
                    }
                    //把菜单ID拿出来方便判断权限使用
                    List<String> controlCodes = controlPermissionVO.getComponents().stream().map(UmsComponentVO::getComponentCode).toList();
                    controlPermissionVO.setComponentCodes(controlCodes);
                    break;
                }
            }
        }
    }
}
